package com.zwj.service.impl;

import com.zwj.bo.CourseUserBo;
import com.zwj.dto.PaginationDate;
import com.zwj.dto.Result;
import com.zwj.dto.ReturnDate;
import com.zwj.entity.BatchEntity;
import com.zwj.entity.CourseUserEntity;
import com.zwj.mapper.CourseUserMapper;
import com.zwj.service.CourseUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zwj.utils.DataCheckUtils;
import com.zwj.utils.PaginationUtils;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author zwj
 * @since 2021-11-04
 */
@Service
public class CourseUserServiceImpl extends ServiceImpl<CourseUserMapper, CourseUserEntity> implements CourseUserService {

    private final CourseUserMapper courseUserMapper;

    public CourseUserServiceImpl(CourseUserMapper courseUserMapper){
            this.courseUserMapper = courseUserMapper;
        }


    @Override
    public Result selectCourseUser(CourseUserBo courseUserBo) {
        //数据校验
        DataCheckUtils.isValid(PaginationUtils.isPagingParameters(courseUserBo.getNumber(), courseUserBo.getPage()), "分页参数错误!");
        int page = courseUserBo.getPage();
        courseUserBo.setPage(PaginationUtils.getPageIndex(courseUserBo.getPage(), courseUserBo.getNumber()));
        //查询证书
        List<Object> result = courseUserMapper.selectCourseUser(courseUserBo);
        int sum = ((List<Integer>) result.get(1)).get(0);
        //记录总数为0
        if (sum == 0) return Result.error().message("查询结果为空");
        PaginationDate paginationDate = PaginationUtils.getPaginationDate(courseUserBo.getNumber(), page, sum);
        //当前页大于总页数
        if (PaginationUtils.isValid(paginationDate))
            return Result.error().message("分页参数错误!");
        List<CourseUserEntity> courseUserEntities =  (List<CourseUserEntity>) result.get(0);
        return Result.ok().data(new ReturnDate(paginationDate,courseUserEntities));
    }


}
